// import 'package:nmb/models/fold.dart';
//
// import '../models/note.dart';
// import 'package:path/path.dart';
// import 'package:sqflite/sqflite.dart';
//
// class DatabaseHelper {
//
//   static DatabaseHelper? _instance;
//   static Database? _database;
//
//   static final int _version = 2;
//
//   DatabaseHelper._internal();
//
//   factory DatabaseHelper() {
//     _instance ??= DatabaseHelper._internal();
//     return _instance!;
//   }
//
//   Future<Database> get database async {
//     if (_database != null) return _database!;
//     _database = await _initDB('notes.db');
//     return _database!;
//   }
//
//   Future<Database> _initDB(String filePath) async {
//     final dbPath = await getDatabasesPath();
//     final path = join(dbPath, filePath);
//
//     return await openDatabase(
//       path,
//       version: _version,
//       onCreate: _createDB,
//       onUpgrade: _upgrade
//     );
//   }
//
//
//   Future<void> _createDB(Database db, int version) async {
//     await db.execute('''
//       CREATE TABLE notes (
//         id TEXT PRIMARY KEY,
//         title TEXT NOT NULL,
//         content TEXT NOT NULL,
//         dateCreated TEXT NOT NULL,
//         dateModified TEXT,
//         foldId TEXT
//       )
//     ''');
//
//     await db.execute('''
//       CREATE TABLE fold (
//         id TEXT PRIMARY KEY,
//         name TEXT NOT NULL
//       )
//     ''');
//   }
//
//   Future<void> _upgrade(Database db, int oldVersion, int newVersion)async {
//     if(oldVersion<2){
//       await db.execute('ALTER TABLE notes RENAME COLUMN tags TO foldId');
//     }
//   }
//
//   // 添加按标签搜索的方法
//   Future<List<Note>> readNotesByFold(String fold) async {
//     final db = await instance.database;
//     final result = await db.query(
//       'notes',
//       where: 'foldId=?',
//       whereArgs: [fold],
//       orderBy: 'dateCreated DESC',
//     );
//     return result.map((json) => Note.fromMap(json)).toList();
//   }
//
//
//   Future<void> createNote(Note note) async {
//     final db = await instance.database;
//     await db.insert('notes', note.toMap());
//   }
//
//   Future<void> createFold(Fold fold) async {
//     final db = await instance.database;
//     await db.insert('fold', fold.toMap());
//   }
//
//   Future<List<Note>> readAllNotes() async {
//     final db = await instance.database;
//     final result = await db.query('notes', orderBy: 'dateCreated DESC');
//     return result.map((json) => Note.fromMap(json)).toList();
//   }
//
//   Future<List<Fold>> readAllFolds() async {
//     final db = await instance.database;
//     final result = await db.query('fold');
//     return result.map((json) =>Fold.fromMap(json)).toList();
//   }
//
//
//
//   Future<Note> readNote(String id) async {
//     final db = await instance.database;
//     final maps = await db.query(
//       'notes',
//       where: 'id = ?',
//       whereArgs: [id],
//     );
//
//     if (maps.isNotEmpty) {
//       return Note.fromMap(maps.first);
//     } else {
//       throw Exception('ID $id not found');
//     }
//   }
//
//   Future<int> updateNote(Note note) async {
//     final db = await instance.database;
//     return await db.update(
//       'notes',
//       note.toMap(),
//       where: 'id = ?',
//       whereArgs: [note.id],
//     );
//   }
//
//   Future<int> deleteNote(String id) async {
//     final db = await instance.database;
//     return await db.delete(
//       'notes',
//       where: 'id = ?',
//       whereArgs: [id],
//     );
//   }
//
//   Future close() async {
//     final db = await instance.database;
//     db.close();
//   }
// }
//
//
//
